package LiftEngine;

import Const.ServerConst;
import java.io.Serializable;

/**
 *
 * Class description goes here.
 *
 * @author Kamil Gajowy
 */
public class LiftTask implements Serializable {

    private int taskLoad[][];
    private int taskUnload[][];

    /**
    * Default constructor.
    */
    public LiftTask(){
        this.taskLoad = new int[ServerConst.LastFloor][1];
        this.taskUnload = new int[ServerConst.LastFloor][1];
    }

    /**
     * Ustawia, ile osob na danym pietrze trzeba wyrzucic.
     * Na serwerze te dane beda odbierane tylko wtedy, jak winda jest pelna.
     * Po wyrzuceniu osob na najblizszym pietrze, wraca to pobierania danych
     * z taskLoad.
     * Aby wyrzucic osoby na konkretnym pietrze, trzeba wstawic tylko 1 wartosc,
     * a pozostale wyzerowac uzywajac odpowiedniej metody: @clearUnloadTask().
     * @param floorNo
     * @param count
     */
    public void setPersonToUnloadOnFloorX(int floorNo, int count){
        this.taskUnload[floorNo][0] = count;
    }

    public int getPersonToUnloadOnFloorX(int floorNo){
        return this.taskUnload[floorNo][0];
    }

    public void clearUnloadTask(){
        int i;
        for ( i  = 0 ; i < taskUnload.length ; ++i ){
            taskUnload[i][0] = 0;
        }
    }

    /**
     * Zwraca ile osob na pietrze @flooNo nalezy zabrac.
     * @param floorNo
     * @return
     */
    public int getPersonToPackOnFloorX(int floorNo){
        return this.taskLoad[floorNo][0];
    }

    /**
     * Ustawia, ile osob (@count) na pietrze (@floorNo) nalezy zabrac.
     * @param floorNo
     * @param count
     */
    public void setPersonToPackOnFloorX(int floorNo, int count){
        this.taskLoad[floorNo][0] = count;
    }

    /**
     * USUWA Z DANEGO PIETRA @COUNT OSOB. 
     * 
     *          Uzywac tylko na serwerze !!!
     *
     * @param floorNo
     * @param count
     */
    public void clearPersonOnFlooxX(int floorNo, int count){
        this.taskLoad[floorNo][0] -= count;
    }


    public void clearPersonOnFloorXLeaving(int floorNo, int count){
        this.taskUnload[floorNo][0] -= count;
    }




}//end class
